<?php
namespace Common\Model\Common;

use Common\Base\ModelBase;

class ConfigModel extends ModelBase
{
    /**
     * 取得系统所有配置信息
     *
     * @return array
     */
    public function getAllConfig()
    {
        return $this->md->table(getTable('common_config'))->order('config_id')->select();
    }

    /**
     * 根据ID获取信息
     *
     * @param int $config_id
     *
     * @return array
     */
    public function getConfigById($config_id = 0)
    {
        $config_id = intval($config_id);
        if ($config_id < 1){
            $this->setError('ID为空');
            return false;
        }
        return $this->md->table(getTable('common_config'))->where(array('config_id'=>$config_id))->find();
    }

    /**
     * 根据name获取信息
     *
     * @param string $name
     *
     * @return array
     */
    public function getConfigByName($name = '')
    {
        return $this->md->table(getTable('common_config'))->where(array('name'=>$name))->find();
    }

    /**
     * 取得系统配置信息
     *
     * @param array $where
     * @return array
     */
    public function getConfig($where = null)
    {
        if(is_array($where)){
            $whereSql = ' 1 ';
            foreach($where as $key => $value)
            {
                $whereSql .= " AND $key='$value'";
            }
        }else{
            $whereSql = strval($where);
        }
        return $this->md->table(getTable('common_config'))->where($whereSql)->select();
    }

    /**
     * 添加单条信息
     *
     * @param array $params
     *
     * @return boolean
     */
    public function add($params = array())
    {
        if(count($params) < 1){
            $this->setError('参数为空');
            return false;
        }
        return $this->md->table(getTable('common_config'))->add($params);
    }

    /**
     * 编辑单条信息
     *
     * @param int   $config_id
     * @param array $params
     *
     * @return boolean
     */
    public function edit($config_id=0, $params=array())
    {
        $config_id = intval($config_id);
        if($config_id < 1){
            $this->setError('参数ID不正确');
            return false;
        }
        if(count($params) < 1){
            $this->setError('参数为空');
            return false;
        }
        return $this->md->table(getTable('common_config'))->where(array('config_id'=>$config_id))->save($params);
    }

    /**
     * 按照名称更新信息
     *
     * @param array $data
     *
     * @return boolean
     **/
    public function update($data = array())
    {
        foreach($data as $key=>$value)
        {
            $set = array('value'=>$value);
            $this->md->table(getTable('common_config'))->where(array('name'=>$key))->save($set);
        }
        return true;
    }

    /**
     * 根据ID删除数据
     *
     * @param int $config_id
     *
     * @return boolean
     **/
    public function deleteConfigById($config_id = 0)
    {
        $config_id = intval($config_id);
        if($config_id < 1){
            $this->setError('ID不正确');
            return false;
        }
        return $this->md->table(getTable('common_config'))->where(array('config_id'=>$config_id))->delete();
    }
}